from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union

DESCRIPTOR: _descriptor.FileDescriptor

class SaveRequest(_message.Message):
    __slots__ = ("task", "dataset_name", "train_dataset", "dev_dataset", "test_dataset", "interface", "dataset_extension")
    TASK_FIELD_NUMBER: _ClassVar[int]
    DATASET_NAME_FIELD_NUMBER: _ClassVar[int]
    TRAIN_DATASET_FIELD_NUMBER: _ClassVar[int]
    DEV_DATASET_FIELD_NUMBER: _ClassVar[int]
    TEST_DATASET_FIELD_NUMBER: _ClassVar[int]
    INTERFACE_FIELD_NUMBER: _ClassVar[int]
    DATASET_EXTENSION_FIELD_NUMBER: _ClassVar[int]
    task: str
    dataset_name: str
    train_dataset: bytes
    dev_dataset: bytes
    test_dataset: bytes
    interface: bytes
    dataset_extension: str
    def __init__(self, task: _Optional[str] = ..., dataset_name: _Optional[str] = ..., train_dataset: _Optional[bytes] = ..., dev_dataset: _Optional[bytes] = ..., test_dataset: _Optional[bytes] = ..., interface: _Optional[bytes] = ..., dataset_extension: _Optional[str] = ...) -> None: ...

class HelloRequest(_message.Message):
    __slots__ = ("name",)
    NAME_FIELD_NUMBER: _ClassVar[int]
    name: str
    def __init__(self, name: _Optional[str] = ...) -> None: ...

class PredictRequest(_message.Message):
    __slots__ = ("model", "dataset", "task", "version", "experiment_id", "text", "project_id", "model_config", "label_list")
    MODEL_FIELD_NUMBER: _ClassVar[int]
    DATASET_FIELD_NUMBER: _ClassVar[int]
    TASK_FIELD_NUMBER: _ClassVar[int]
    VERSION_FIELD_NUMBER: _ClassVar[int]
    EXPERIMENT_ID_FIELD_NUMBER: _ClassVar[int]
    TEXT_FIELD_NUMBER: _ClassVar[int]
    PROJECT_ID_FIELD_NUMBER: _ClassVar[int]
    MODEL_CONFIG_FIELD_NUMBER: _ClassVar[int]
    LABEL_LIST_FIELD_NUMBER: _ClassVar[int]
    model: str
    dataset: str
    task: str
    version: int
    experiment_id: int
    text: str
    project_id: int
    model_config: ModelConfig
    label_list: str
    def __init__(self, model: _Optional[str] = ..., dataset: _Optional[str] = ..., task: _Optional[str] = ..., version: _Optional[int] = ..., experiment_id: _Optional[int] = ..., text: _Optional[str] = ..., project_id: _Optional[int] = ..., model_config: _Optional[_Union[ModelConfig, _Mapping]] = ..., label_list: _Optional[str] = ...) -> None: ...

class ActiveLearningRequest(_message.Message):
    __slots__ = ("model", "dataset", "task", "version", "experiment_id", "project_id", "model_config", "optimizer_config", "label_list", "sampling_dataset", "sampling_task", "sampling_num")
    MODEL_FIELD_NUMBER: _ClassVar[int]
    DATASET_FIELD_NUMBER: _ClassVar[int]
    TASK_FIELD_NUMBER: _ClassVar[int]
    VERSION_FIELD_NUMBER: _ClassVar[int]
    EXPERIMENT_ID_FIELD_NUMBER: _ClassVar[int]
    PROJECT_ID_FIELD_NUMBER: _ClassVar[int]
    MODEL_CONFIG_FIELD_NUMBER: _ClassVar[int]
    OPTIMIZER_CONFIG_FIELD_NUMBER: _ClassVar[int]
    LABEL_LIST_FIELD_NUMBER: _ClassVar[int]
    SAMPLING_DATASET_FIELD_NUMBER: _ClassVar[int]
    SAMPLING_TASK_FIELD_NUMBER: _ClassVar[int]
    SAMPLING_NUM_FIELD_NUMBER: _ClassVar[int]
    model: str
    dataset: str
    task: str
    version: int
    experiment_id: int
    project_id: int
    model_config: ModelConfig
    optimizer_config: OptimizerConfig
    label_list: str
    sampling_dataset: str
    sampling_task: str
    sampling_num: int
    def __init__(self, model: _Optional[str] = ..., dataset: _Optional[str] = ..., task: _Optional[str] = ..., version: _Optional[int] = ..., experiment_id: _Optional[int] = ..., project_id: _Optional[int] = ..., model_config: _Optional[_Union[ModelConfig, _Mapping]] = ..., optimizer_config: _Optional[_Union[OptimizerConfig, _Mapping]] = ..., label_list: _Optional[str] = ..., sampling_dataset: _Optional[str] = ..., sampling_task: _Optional[str] = ..., sampling_num: _Optional[int] = ...) -> None: ...

class Experiment(_message.Message):
    __slots__ = ("model", "dataset", "task", "experiment_id", "model_config", "optimizer", "version", "project_id", "data", "label_list")
    MODEL_FIELD_NUMBER: _ClassVar[int]
    DATASET_FIELD_NUMBER: _ClassVar[int]
    TASK_FIELD_NUMBER: _ClassVar[int]
    EXPERIMENT_ID_FIELD_NUMBER: _ClassVar[int]
    MODEL_CONFIG_FIELD_NUMBER: _ClassVar[int]
    OPTIMIZER_FIELD_NUMBER: _ClassVar[int]
    VERSION_FIELD_NUMBER: _ClassVar[int]
    PROJECT_ID_FIELD_NUMBER: _ClassVar[int]
    DATA_FIELD_NUMBER: _ClassVar[int]
    LABEL_LIST_FIELD_NUMBER: _ClassVar[int]
    model: str
    dataset: str
    task: str
    experiment_id: int
    model_config: ModelConfig
    optimizer: OptimizerConfig
    version: int
    project_id: int
    data: str
    label_list: str
    def __init__(self, model: _Optional[str] = ..., dataset: _Optional[str] = ..., task: _Optional[str] = ..., experiment_id: _Optional[int] = ..., model_config: _Optional[_Union[ModelConfig, _Mapping]] = ..., optimizer: _Optional[_Union[OptimizerConfig, _Mapping]] = ..., version: _Optional[int] = ..., project_id: _Optional[int] = ..., data: _Optional[str] = ..., label_list: _Optional[str] = ...) -> None: ...

class Response(_message.Message):
    __slots__ = ("message", "status")
    MESSAGE_FIELD_NUMBER: _ClassVar[int]
    STATUS_FIELD_NUMBER: _ClassVar[int]
    message: str
    status: int
    def __init__(self, message: _Optional[str] = ..., status: _Optional[int] = ...) -> None: ...

class ModelConfig(_message.Message):
    __slots__ = ("train_max_seq_length", "eval_max_seq_length", "batch_size", "num_train_epochs", "evaluate_during_training", "save_mode", "load_mode", "other_config")
    TRAIN_MAX_SEQ_LENGTH_FIELD_NUMBER: _ClassVar[int]
    EVAL_MAX_SEQ_LENGTH_FIELD_NUMBER: _ClassVar[int]
    BATCH_SIZE_FIELD_NUMBER: _ClassVar[int]
    NUM_TRAIN_EPOCHS_FIELD_NUMBER: _ClassVar[int]
    EVALUATE_DURING_TRAINING_FIELD_NUMBER: _ClassVar[int]
    SAVE_MODE_FIELD_NUMBER: _ClassVar[int]
    LOAD_MODE_FIELD_NUMBER: _ClassVar[int]
    OTHER_CONFIG_FIELD_NUMBER: _ClassVar[int]
    train_max_seq_length: int
    eval_max_seq_length: int
    batch_size: int
    num_train_epochs: int
    evaluate_during_training: bool
    save_mode: str
    load_mode: str
    other_config: str
    def __init__(self, train_max_seq_length: _Optional[int] = ..., eval_max_seq_length: _Optional[int] = ..., batch_size: _Optional[int] = ..., num_train_epochs: _Optional[int] = ..., evaluate_during_training: bool = ..., save_mode: _Optional[str] = ..., load_mode: _Optional[str] = ..., other_config: _Optional[str] = ...) -> None: ...

class OptimizerConfig(_message.Message):
    __slots__ = ("optimizer_class", "params")
    OPTIMIZER_CLASS_FIELD_NUMBER: _ClassVar[int]
    PARAMS_FIELD_NUMBER: _ClassVar[int]
    optimizer_class: str
    params: str
    def __init__(self, optimizer_class: _Optional[str] = ..., params: _Optional[str] = ...) -> None: ...

class FileChunk(_message.Message):
    __slots__ = ("buffer",)
    BUFFER_FIELD_NUMBER: _ClassVar[int]
    buffer: bytes
    def __init__(self, buffer: _Optional[bytes] = ...) -> None: ...

class DatasetDownloadRequest(_message.Message):
    __slots__ = ("dataset_name", "mode", "task")
    DATASET_NAME_FIELD_NUMBER: _ClassVar[int]
    MODE_FIELD_NUMBER: _ClassVar[int]
    TASK_FIELD_NUMBER: _ClassVar[int]
    dataset_name: str
    mode: str
    task: str
    def __init__(self, dataset_name: _Optional[str] = ..., mode: _Optional[str] = ..., task: _Optional[str] = ...) -> None: ...

class GetRunningMetricRequest(_message.Message):
    __slots__ = ("project_ids", "experiment_ids")
    PROJECT_IDS_FIELD_NUMBER: _ClassVar[int]
    EXPERIMENT_IDS_FIELD_NUMBER: _ClassVar[int]
    project_ids: str
    experiment_ids: str
    def __init__(self, project_ids: _Optional[str] = ..., experiment_ids: _Optional[str] = ...) -> None: ...

class GetModelParamsRequest(_message.Message):
    __slots__ = ("model_name",)
    MODEL_NAME_FIELD_NUMBER: _ClassVar[int]
    model_name: str
    def __init__(self, model_name: _Optional[str] = ...) -> None: ...

class RecommendRequest(_message.Message):
    __slots__ = ("dataset", "task")
    DATASET_FIELD_NUMBER: _ClassVar[int]
    TASK_FIELD_NUMBER: _ClassVar[int]
    dataset: str
    task: str
    def __init__(self, dataset: _Optional[str] = ..., task: _Optional[str] = ...) -> None: ...

class RecommendResponse(_message.Message):
    __slots__ = ("model",)
    MODEL_FIELD_NUMBER: _ClassVar[int]
    model: str
    def __init__(self, model: _Optional[str] = ...) -> None: ...
